import Mock from 'mockjs'

function param2Obj(url){
    const search = url.split('?')[1]
    if(!search){
        return {}
    }
    return JSON.parse(
        '{"' + 
        decodeURIComponent(search)
          .replace(/"/g,'\\"')
          .replace(/&/g,'","')
          .replace(/=/g,'":"') +
        '"}'
    )
}
let List = [] 
const count = 200

for(let i=0; i<count; i++){
    List.push(
        Mock.mock({
            id:Mock.Random.guid(),
            name:Mock.Random.cname(),
            addr:Mock.mock('@county(true)'),
            'age|18-60':1,
            birth:Mock.Random.date(),
            sex:Mock.Random.integer(0,1)
        })
    )
}
//console.log(List,'user.js');
export default {
    getUserList:config =>{
        //console.log(config,'user.js');  {url: '/api/user/getUser?name=&page=2&limit=10', type: 'GET', body: null}
        const {name,page=1,limit=20} = param2Obj(config.url)
        const mockList = List.filter(user => {
            if(name && user.name.indexOf(name) === -1 && user.addr.indexOf(name) === -1) return false
            return true
        })  
        const pageList = mockList.filter((item,index)=>index < limit * page && index >= limit * (page - 1))
        return {
            /* code:20000,
            count:mockList.length,
            list:pageList */
            code:200,
            data:{
                count:mockList.length,
                list:pageList
            }
        }
    },
    createUser:config => {
        const {name,addr,age,birth,sex} = JSON.parse(config.body)
        List.unshift({
            id:Mock.Random.guid(),
            name,
            addr,
            age,
            birth,
            sex
        })
        return {
            code:200,
            data:{
                message:'添加成功'
            }
        }
    },
    deleteUser:config => {
        const {id} = JSON.parse(config.body)
        if(!id){
            return {
                code:-999,
                data:{
                    message:'参数不正确'
                }
            }
        }else{
            List = List.filter(u => u.id !== id)
            return {
                code:200,
                data:{
                    message:'删除成功'
                }
            }
        }
    },
    batchRemove:config =>{
        let {ids} = param2Obj(config.url)
        ids = ids.split(',')
        List = List.filter(u => !ids.include(u.id))
        return {
            code:200,
            data:{
                message:'批量删除成功'
            }
        }
    },
    updateUser:config => {
        const {id,name,addr,age,birth,sex} = JSON.parse(config.body)
        const sex_num = parseInt(sex)
        List.some(u => {
            if(u.id === id){
                u.name = name
                u.addr = addr
                u.age = age
                u.birth = birth
                u.sex = sex_num
                return true
            }
        })
        return {
            code:200,
            data:{
                message:'编辑成功'
            }
        }
    }
}